package com.axin.blog.service;

import com.axin.blog.api.domain.Blog;
import com.axin.blog.api.dto.BlogDTO;
import com.axin.blog.api.vo.BlogMonthArchive;
import com.axin.blog.api.vo.BlogVo;
import com.axin.common.core.domain.web.TableDataInfo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * 博客分类 业务层
 * @author axin
 */
public interface IBlogService extends IService<Blog> {

    /**
     * 根据参数分页查询博客列表
     *
     * @param blog
     * @return
     */
    TableDataInfo selectPageBlogList(Blog blog);

    /**
     * 新增博客
     *
     * @param blogDTO
     * @return 结果
     */
    int insertBlog(BlogDTO blogDTO);

    /**
     * 查询博客信息
     *
     * @param blogId
     * @return
     */
    BlogVo selectBlogById(Long blogId);




    /**
     * 修改博客信息
     *
     * @param blogDTO 博客信息
     * @return 结果
     */
    int updateBlog(BlogDTO blogDTO);


    /**
     * 批量删除分类
     *
     * @param blogIds 需要删除的博客ID
     * @return 结果
     */
    void deleteBlogByIds(Long[] blogIds);


    //===================================前台接口============================================================================

    /**
     * 查询最新发布的博客
     *
     * @param blog
     * @return
     */
    TableDataInfo getNewBlogPageList(Blog blog);

    /**
     * 获取时间日期归档
     * @return
     */
    List<BlogMonthArchive> getMonthArchiveList();


}
